package com.hillky.transport.message;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;

/**
 * 他用来描述，请求调用方所请求的接口方法的描述
 * String sayHi = helloYrpc.sayHi("你好yrpc");
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class RequestPayload implements Serializable {

    //1、接口名称 com.hillky.HelloYrpc
    private String interfaceName;
    //2、方法名称 sayHi
    private String methodName;

    //3、参数列表 参数分为参数类型和具体的参数
    // 参数类型用来确定重载方法，具体的参数用来执行方法调用
    private Class<?>[] parametersType;   //--{java.long.String}
    private Object[] parametersValue;   //--"你好yrpc"

    //4、返回值的封装
    private Class<?> returnType; //--{java.long.String}

}
